﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace GameSite.Models
{

    public class ConfigViewModel
    {
        public ConfigViewModel(Dictionary<string, SiteConfig> config)
        {
            Config = config;
        }

        public Dictionary<string, SiteConfig> Config { get; private set; }

        public string CorpAddress { get { return Config[ConfigKey.CorpAddress.ToString()].ConfigValue; } }
        public string CorpEmail { get { return Config[ConfigKey.CorpEmail.ToString()].ConfigValue; } }
        public string CorpName { get { return Config[ConfigKey.CorpName.ToString()].ConfigValue; } }
        public string CorpQQ { get { return Config[ConfigKey.CorpQQ.ToString()].ConfigValue; } }
        public string CorpShortName { get { return Config[ConfigKey.CorpShortName.ToString()].ConfigValue; } }
        public string CorpTel { get { return Config[ConfigKey.CorpTel.ToString()].ConfigValue; } }

        public string GameCommonNotice { get { return Config[ConfigKey.GameCommonNotice.ToString()].ConfigValue; } }
        public string GameVirualCoinCN { get { return Config[ConfigKey.GameVirualCoinCN.ToString()].ConfigValue; } }

        public string HallClientAndroidUrl { get { return Config[ConfigKey.HallClientAndroidUrl.ToString()].ConfigValue; } }
        public string HallClientIOSUrl { get { return Config[ConfigKey.HallClientIOSUrl.ToString()].ConfigValue; } }
        public string HallClientWinPCUrl { get { return Config[ConfigKey.HallClientWinPCUrl.ToString()].ConfigValue; } }
        public string HallClientWPhoneUrl { get { return Config[ConfigKey.HallClientWPhoneUrl.ToString()].ConfigValue; } }

        public string PlatFormName { get { return Config[ConfigKey.PlatFormName.ToString()].ConfigValue; } }
        public string PlatFormNameCN { get { return Config[ConfigKey.PlatFormNameCN.ToString()].ConfigValue; } }

        public string SiteLogoUrl { get { return Config[ConfigKey.SiteLogoUrl.ToString()].ConfigValue; } }
        public string SiteName { get { return Config[ConfigKey.SiteName.ToString()].ConfigValue; } }
        public string SiteNameCN { get { return Config[ConfigKey.SiteNameCN.ToString()].ConfigValue; } }
        public string SiteTemplateName { get { return Config[ConfigKey.SiteTemplateName.ToString()].ConfigValue; } }
        public string SiteUrl { get { return Config[ConfigKey.SiteUrl.ToString()].ConfigValue; } }

        public string SNGameLicense { get { return Config[ConfigKey.SNGameLicense.ToString()].ConfigValue; } }
        public string SNSiteLicense { get { return Config[ConfigKey.SNSiteLicense.ToString()].ConfigValue; } }
        public string SNVirtualPayLicense { get { return Config[ConfigKey.SNVirtualPayLicense.ToString()].ConfigValue; } }

        public string SiteTemplatePath
        {
            get
            {
                return string.Format("/Content/themes/{0}/", SiteTemplateName);
            }
        }

        public string SiteTemplateImagePath
        {
            get
            {
                return string.Format("/Content/themes/{0}/images/", SiteTemplateName);
            }
        }

        public string SiteLogoFullUrl
        {
            get
            {
                return string.Format("/Images/{0}", SiteLogoUrl);
            }
        }

        public string GetValue(string key)
        {
            return Config.ContainsKey(key) ? Config[key].ConfigValue : string.Empty;
        }
    }
}